<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../../resources/js-test.js"></script>
<script src="test.js"></script>
</head>
<body>
<div id="console"></div>

<script>
/*
     IEEE 754 says:
    
       +-Infinity * +-Infinity = +-Infinity
       +-Infinity * 0 = NaN
    
       n div +-Infinity = 0
       +-nonzero div 0 = +-Infinity
       +-Infinity div +-Infinity = NaN
       +-0 div +-0 = NaN
    
       Infinity + Infinity = Infinity
       Infinity - Infinity = NaN
*/
    shouldBe('DOM.evaluate("-5 * 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-10');
    shouldBe('DOM.evaluate("-4 * -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '8');
    shouldBe('DOM.evaluate("0 * 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("(1 div 0) * (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
    shouldBe('DOM.evaluate("(-1 div 0) * (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
    shouldBe('DOM.evaluate("(1 div 0) * (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
    shouldBe('DOM.evaluate("0 div 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("-5 div 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2.5');
    shouldBe('DOM.evaluate("-4 div -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
    shouldBe('DOM.evaluate("0 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("1 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
    shouldBe('DOM.evaluate("-1 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
    shouldBe('DOM.evaluate("0 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("1 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("-1 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0');
    shouldBe('DOM.evaluate("0 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0');
    shouldBe('DOM.evaluate("1 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0');
    shouldBe('DOM.evaluate("-1 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("(1 div 0) div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(1 div 0) div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(-1 div 0) div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(-1 div 0) div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("0 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("-5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
    shouldBe('DOM.evaluate("-5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
    shouldBe('DOM.evaluate("1 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("0 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(0 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("2 mod (0 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(1 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(1 div 0) mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("(1 div 0) mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("42 mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '42');
    shouldBe('DOM.evaluate("0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0.5');
    shouldBe('DOM.evaluate("-0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0.5');
    shouldBe('DOM.evaluate("2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0.5');
    shouldBe('DOM.evaluate("-2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0.5');
    shouldBe('DOM.evaluate("5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
    shouldBe('DOM.evaluate("5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
    shouldBe('DOM.evaluate("-5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2');
    shouldBe('DOM.evaluate("-5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2');

    shouldBe('DOM.evaluate("5 + 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '7');
    shouldBe('DOM.evaluate("3 + -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("(1 div 0) + (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
    shouldBe('DOM.evaluate("5 - 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3');
    shouldBe('DOM.evaluate("3 - -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '5');
    shouldBe('DOM.evaluate("(1 div 0) - (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');

    shouldBe('DOM.evaluate("- 5", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-5');
    shouldBe('DOM.evaluate("- (- 2)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');

    shouldBe('DOM.evaluate("5 = 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 = -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("-5 = -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("0 = 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("(1 div 0) = (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("(-1 div 0) = (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 = (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 = number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("number(\'NaN\') = number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("31 = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');

    shouldBe('DOM.evaluate("5 != 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 != -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("-5 != -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("0 != 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("(1 div 0) != (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("(-1 div 0) != (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 != (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("number(\'NaN\') != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("31 != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');

    shouldBe('DOM.evaluate("5 < 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 > 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 >= 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 < -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 >= -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 < 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 >= 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 < (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 <= (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 > (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 >= (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 < (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 >= (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 < number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 >= number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');

    shouldBe('DOM.evaluate("\'-5\' * \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-10');
    shouldBe('DOM.evaluate("\'-4\' * \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '8');
    shouldBe('DOM.evaluate("\'0\' * \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("\'1\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("\'3.1415926535\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3.1415926535');
    shouldBe('DOM.evaluate("\'\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("\'Hi\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("\'NaN\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("\'\u2022 = middle dot\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("\'0\' div \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("\'1\' div \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("\'-5\' div \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2.5');
    shouldBe('DOM.evaluate("\'-4\' div \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
    shouldBe('DOM.evaluate("\'0\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
    shouldBe('DOM.evaluate("\'1\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
    shouldBe('DOM.evaluate("\'-1\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
    shouldBe('DOM.evaluate("\'0\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
    shouldBe('DOM.evaluate("\'5\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("\'5\' mod \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("\'-5\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
    shouldBe('DOM.evaluate("\'-5\' mod \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');

    shouldBe('DOM.evaluate("\'5\' + \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '7');
    shouldBe('DOM.evaluate("\'3\' + \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
    shouldBe('DOM.evaluate("\'5\' - \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3');
    shouldBe('DOM.evaluate("\'3\' - \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '5');

    shouldBe('DOM.evaluate("-\'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-5');
    shouldBe('DOM.evaluate("-\'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');

    shouldBe('DOM.evaluate("\'5\' = \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' = \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'-5\' = \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'0\' = \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'Hi\' = \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' = \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' = \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'NaN\' = \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'31\' = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');

    shouldBe('DOM.evaluate("\'5\' != \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' != \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'-5\' != \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'0\' != \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' != \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'NaN\' != \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'31\' != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');

    shouldBe('DOM.evaluate("5 < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("31 < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'31\' < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("31 <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'31\' <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("31 > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'31\' > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("5 < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("31 < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'31\' < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("31 <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'31\' <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("5 > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("31 > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'31\' > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' < \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' <= \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' > \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' >= \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
    shouldBe('DOM.evaluate("\'5\' > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
    shouldBe('DOM.evaluate("\'5\' >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');

</script>
</body>
</html>
